#ifndef PROGRAMCLIENT_H
#define PROGRAMCLIENT_H

#include <stddef.h>
#include <boost/shared_ptr.hpp>

class UnnormalState;
class ClientGroup;

class ProgramClient
{
public:
	virtual ~ProgramClient() {}
	virtual int getId() const = 0;
	virtual void setGroup(boost::shared_ptr<ClientGroup> group) = 0;
	virtual void sendData(const char* buffer, size_t bufferSize) = 0;
	virtual unsigned int getStateClientCount(const UnnormalState& state) const = 0;
};

#endif // PROGRAMCLIENT_H
